iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

今天的成果
Day11

今天使用.sheet做了一個設定頁面。
每次開啟APP,決定要不要自動把螢幕調亮。
儲存的方式利用AppStorage,當開關按鈕更新設定,下次開啟APP的行為也會改變。

struct ContentView: View {
    @AppStorage("isScreenBrightest") private var isScreenBrightest = false
    
  ...
  
    var body: some View {
        .....
        }.onAppear {
            // App 啟動時,根據 UserDefaults 設定調整螢幕亮度
            if isScreenBrightest {
                adjustScreenBrightness(to: 1.0)
            }
        }
    }
    
    func adjustScreenBrightness(to brightness: CGFloat) {
            UIScreen.main.brightness = brightness
    }
}

設定頁面很單薄,目前只有一個關閉按鈕與開關元件。

struct SettingView: View {
    @Binding var isScreenBrightest: Bool
    @Binding var isPresented: Bool

    var body: some View {
        ZStack {
            Color(red: 0.3, green: 0.7, blue: 0.4).ignoresSafeArea()
            VStack {
                HStack {
                    Spacer()
                    Button(action: {
                        isPresented = false
                    }) {
                        Image(systemName: "xmark")
                            .font(.title)
                    }.padding()
                }
                Toggle("啟動時螢幕最亮", isOn: $isScreenBrightest)
                    .padding()
                Spacer()
            }
        }
        .navigationTitle("設定")
    }
}

上一篇
畫面設計
下一篇
聊聊介面
系列文
從概念發想上架一支SwiftUI app30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言